package io.kiki.sba.registry.server.clientInterface.slot;

import io.kiki.sba.registry.common.model.multi.cluster.RemoteSlotsStatus;
import io.kiki.sba.registry.common.model.slot.Slot;
import io.kiki.sba.registry.common.model.slot.Slots;

import java.util.Map;


public interface SlotsCache {

    int slotOf(String dataInfoId);


    Slot getSlot(String dataCenter, String dataInfoId);


    Slot getSlot(String dataCenter, int slotId);


    String getLeader(String dataCenter, int slotId);


    long getEpoch(String dataCenter);

    boolean updateLocalSlots(Slots slots);

    boolean updateRemoteSlots(Map<String, RemoteSlotsStatus> remoteSlotsStatus);


    Slots getLocalSlots();

    Map<String, Long> getRemoteslotsEpoch();

    Slots getSlots(String dataCenter);
}
